gdk: Introduce a popup surface type
authorMatthias Clasen <mclasen@redhat.com>
Mon, 22 Apr 2019 13:16:26 +0000 (13:16 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 28 May 2019 20:25:14 +0000 (20:25 +0000)
This surface type is meant to have semantics
similar to xdg-popup, with a mandatory parent,
and relative placement using gdk_surface_move_to_rect.

gdk/gdksurface.c
gdk/gdksurface.h

index 1d858cbc6720911e7d23c47fea3b66f9d0933e1c..d9169de7e6b547d401d41cdda7ca78c12232001c 100644 (file)
@@ -812,8 +812,8 @@ gdk_surface_new_popup (GdkDisplay *display,
   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
   g_return_val_if_fail (GDK_IS_SURFACE (parent), NULL);
 
-  surface = gdk_surface_new (display, GDK_SURFACE_TEMP,
-                             NULL, 0, 0, 100, 100);
+  surface = gdk_surface_new (display, GDK_SURFACE_POPUP,
+                             parent, 0, 0, 100, 100);
 
   gdk_surface_set_transient_for (surface, parent);
   gdk_surface_set_type_hint (surface, GDK_SURFACE_TYPE_HINT_MENU);
index f3ab38f8519b30f29c7bcb8a638e4dc9cc4e2e74..938c59ba17a445ea254b6b7f6384925697f3f649 100644 (file)
@@ -43,6 +43,7 @@ typedef struct _GdkGeometry          GdkGeometry;
  * GdkSurfaceType:
  * @GDK_SURFACE_TOPLEVEL: toplevel window (used to implement #GtkWindow)
  * @GDK_SURFACE_TEMP: override redirect temporary surface (used to implement #GtkMenu)
+ * @GDK_SURFACE_POPUP: popup window with semantics like xdg-popover
  *
  * Describes the kind of surface.
  */
@@ -50,6 +51,7 @@ typedef enum
 {
   GDK_SURFACE_TOPLEVEL,
   GDK_SURFACE_TEMP,
+  GDK_SURFACE_POPUP
 } GdkSurfaceType;
 
 /* Size restriction enumeration.